import { safeCb } from './safeCb'
import { keys } from './keys'
// 11425
/**
 * 返回对象中第一个通过真值检测的属性键名
 * findKey({ a: 1, b: 2 }, function(val) {
    return val === 1;
   }); // -> a
   dependencies safeCb keys
 * @param {*} obj 
 * @param {*} predicate  真值检测函数
 * @param {*} ctx 函数上下文
 * @returns 符合条件的键名
 */
export function findKey (obj, predicate, ctx) {
  predicate = safeCb(predicate, ctx);

  var _keys = keys(obj);

  var key;

  for (var i = 0, len = _keys.length; i < len; i++) {
    key = _keys[i];
    if (predicate(obj[key], key, obj)) return key;
  }
}